package com.greenleaf.util;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class StringTools {

	/**
     *判断字符串是否为空
     */
	public static boolean isNull(String str) {
        if(str==null || str.equals("")){
        	return true;
        }
        return false;
	}
	
	/**
     *判断字符串是否不为空
     */
	public static boolean isNotNull(String str) {
       return !isNull(str);
	}
	
	/**
	 * @return
	 * 获取随机的订单号（年月日时分秒+4位随机数）
	 */
	public static String getOrderNo(){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss") ;  
	    String timeStr = sdf.format(new Date()) ;  
	    int num=(int)((Math.random()*9+1)*1000);
	    return timeStr+num;  
	}
	
	 /**
     * 对字符串md5加密(小写+字母)
     * @param str 传入要加密的字符串
     * @return  MD5加密后的字符串
     */
    public static String getMD5(String str) {
        try {
            // 生成一个MD5加密计算摘要
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 计算md5函数
            md.update(str.getBytes());
            // digest()最后确定返回md5 hash值，返回值为8为字符串。因为md5 hash值是16位的hex值，实际上就是8位的字符
            // BigInteger函数则将8位的字符串转换成16位hex值，用字符串来表示；得到字符串形式的hash值
            return new BigInteger(1, md.digest()).toString(16);
        } catch (Exception e) {
           e.printStackTrace();
           return null;
        }
    }
    /**
	 * @return
	 * 生成6位验证码
	 */
	public static String getCode(){
	    return String.valueOf(new Random().nextInt(899999) + 100000);
	}
}
